如何告别“芯繁魂乱”难题?这个 OS 来支招!
对于IT界来说,CPU 是“芯”,操作系统是“魂”。可一直以来,中国面临“芯繁魂乱”难题:内核不统一,软硬件无法自由搭配,应用适配困难……
在“核高基”国家科技重大专项下,各操作系统厂商不断优化和加强自身技术来加速国产操作系统的发展脚步。
其中专注基于 Linux 的操作系统研发与服务的统信软件走上不一般的研发路径:通过对技术路线的统一,统信软件打造 1 个版本 的 OS 产品,提供 1 套应用开发接口、1 个应用开发支撑平台、1 套 标准规范、1 个应用商店和软件仓库、1 套产品文档,通过这六大特性的统一来致力于解决“芯繁魂乱”难题,给用户提供便捷的使用体验。
背后经历怎样的研发之路?CSDN(ID:CSDNnews)专访统信软件 CTO 张磊,来聊聊操作系统研发背后的心路历程。
目前统信软件拥有桌面操作系统——统信UOS,支持多个处理器,同时支持四种 CPU 架构(AMD64、ARM64、MIPS64、SW64) 和六大 CPU 平台(鲲鹏、龙芯、申威、海光、兆芯、飞腾)。
统信UOS 的前身是深度操作系统,据张磊介绍,深度操作系统于 2004 年诞生,至今已有 16 年发展历程,目前在开源操作系统里排行世界前十,广受用户欢迎。
所以别看统信软件公司仅成立半年时间,其背后是拥有 16 年研发经验积累的研发班底在加持。
无论是深度操作系统或是统信UOS,回顾这些技术的发展历程同时,我们也能看到一群热爱开源开发者的成长史:
故事得从上世纪 90 年代诞生的 Linux 说起。随着 Linux 在全球范围内深受开发者欢迎之际,Linux 也被引入到中国,可国内开发者一开始在使用时遇到一些问题,且知识点是英文,不便于中国开发者使用。
于是一群开源爱好者聚集起来,带着让国内开发者能友好使用 Linux 的简单初衷,开始研发深度操作系统,并坚持到现在。这一路走来,大家是“摸着石头过河”式的不断探索与迭代:
2004-2008 年,大家在业余时间完成深度操作系统的社区化开发。
2011 年,成立专注做操作系统的公司,深入研究深度操作系统的研发。
但在 2015 年前,由于整个公司均是开发人员,产品较技术化,公司一直没有盈利。直到 2015 年,深度操作系统深受用户的欢迎,公司看到商业机会。在人员组织上,公司除研发团队外,补充产品、销售、市场等人才资源,内部扩大部门职责。在产品上,从原有只做桌面操作系统,扩大涉及服务器操作系统、专用设备操作系统等产品,开始走上商业化道路。
看到这,一些开发者不禁提出自己的疑问:统信UOS 和深度操作系统是同一套软件产品吗?
张磊表示,并不是,这是两套产品。统信UOS 的前身是深度操作系统,部分代码有延续性,但统信UOS 有很多全新研发的功能,它与深度操作系统是两个独立的产品。
例如上文提到的统信UOS 有“六个统一特性”:打造1个版本的 OS 产品,提供 1 套应用开发接口、1 个应用开发支撑平台、1 套标准规范、1 个应用商店和软件仓库、1 套产品文档。还有软硬一体的安全体系设计,这是深度操作系统所没有的。
六大统一特性,助力告别“芯繁魂乱”难题
打造1个版本的 OS 产品
张磊表示,要保证操作系统在众多处理器平台和硬件平台均运行正常,保证应用软件在主流操作系统正常运行,须保证接口和系统的统一。不然的话,就有可能出现有的软件在A平台上能编译运行,但有可能在B平台上无法编译或运行失败。这对于软硬件开发者来说,都是非常烦恼的事,还将浪费额外的适配时间与精力,所以需要做统一的工作。
另外,在一个操作系统里可能部署上千款软件,如果每个平台上的软件都不一样,那么开发者会遇到适配难题。所以要保证系统在各个平台上的软件版本是一致,需统一软件版本或者打造统一的操作系统产品。
提供1套应用开发接口
对于软硬件的驱动开发商来说,拥有开发接口才能开发程序或者驱动。假如开发接口不停地在改变,那将给开发商带来的巨大工作量,所以需要在不同版本的系统间提供一套统一的应用开发接口。
在应用开发完成后,还需运行时环境和运行库,同样的,运行库和运行时环境保持统一,如果不保持统一,程序在运行时有可能会崩溃出错。
不管是开发接口,还是运行平台的研发代码量是非常巨大的:例如截止 2020 年 1 月 1 日,Linux 内核 Git 源码树中的代码达到了 2780 万行。如果让开发人员挨行阅读这庞大数据量的代码,逐步来了解接口和运行环境的话,这是不现实的。
所以需要把这套接口抽象出来变成标准规范,让开发人员和厂商可直接通过阅读简洁的标准规范来进行开发、适配和运行,节省大量的人力与时间成本。
1个应用商店和软件仓库
用户在系统上使用的软件众多,此时需要有统一的方式来安装和管理这些软件,于是统信软件提供统一的应用商店和软件仓库。
1套产品文档
将上述的标准规范、接口、商店的使用规则完善到一套产品文档里,统一展示给用户,帮助用户更好地理解与使用相关产品。
统信UOS
如今,人们的日常生活和工作离不开笔记本电脑、台式机、手机等信息化产品,大家除了关注其产品性能外,对网络时代下个人隐私安全的关注和要求也越来越高。
这对操作系统提出重大的挑战。面对安全难题,统信软件建立起软硬一体的安全体系设计,通过分区策略、限制 sudo 使用、商店应用安全策略、安全启动和开发者模式等五大安全策略来保障操作系统的安全性和稳定性,捍卫用户的安全。
在硬件和固件上,统信软件和国内的知名厂商一起制订构建规范来保证系统的安全启动。在每次发布新操作系统版本前,先交给安全合作伙伴进行扫描和攻防演练,检查新版本是否安全。做到在产品出厂前,如有安全漏洞可先修复。
如果操作系统安全,但在用户安装不同的应用软件时存在不安全因素的话也是不行的。因此限制 sudo 使用,这样一来,防范普通用户因误操作把自己的安全策略给破坏掉。
当应用软件上线商店时,统信软件会先完成安全审核,确保软件在下发过程中不被人篡改,对软件进行签名,这确保进入统信软件商城里的软件是较安全的。
操作系统在出厂前的安全扫描和攻防演练、应用审核、签名,这些技术是确保其静态安全。
但考虑到系统发布存在有人攻击的可能性,统信软件也具备动态安全的防护策略。例如在终端上部署终端安全中心,统信软件和安全伙伴合作,将其安全引擎添加到终端安全中心,给用户提供终端安全保障。对于企业用户,统信软件提供集中管理技术和内网应用商店服务,让企业用户可以在内网对系统的终端进行安全管理。
综上,统信软件从硬件到软件、从内网到外网、从操作系统到应用程序的整套闭环安全体系,捍卫你的系统安全。
人才、技术、生态,
国产桌面操作系统之“痛”
尽管统信软件从六大特性、安全体系等有良好的建树,但做一款桌面操作系统2
仍存在一些挑战与难题:
1、生态积累难题
张磊表示,不仅是桌面操作系统,通用操作系统都面临生态的问题。一个裸的操作系统对用户来说没有什么意义,用户真正需要的是成百上千的软件应用。但对于一个新的桌面操作系统来说,如何有这么多的软件产品提供给用户?
“这是生态积累的问题,类似‘鸡生蛋,还是蛋生鸡’难题。我们做操作系统在初始版本时,需和各软硬件厂商有较好的协作。”张磊表示。
在市场份额上,如今有 Windows 等市场份额较大的桌面操作系统,用户在选择新的操作系统时,心里难免会与市面上成熟的操作系统做对比,用户希望在新的操作系统也有成熟操作系统的一些功能,但是软件的开发和迁移需要一定的时间和积累,如何来实现呢?这是平台建设的问题。
2、技术和人才的空白
由于国内做桌面操作系统的经验并不多,在技术和人才的积累与培养上,有一些空白之处。如在安全技术上,要做 UEFI 等固件安全的话,开发者需了解现有的标准和规范,这些标准规范有大几百页长的陈述。
国内很少有这样的开发者能深入理解这些标准规范,毕竟有些细节之处是通过多次参与标准委员会的讨论,才能理解这些细节的设计和规定原则。开发者不了解清楚的话,可能就会掉“坑”里。
张磊还表示,在和一些大学老师沟通时,对方反馈,学生对操作系统课程并不感冒,因为在国内操作系统就业岗位较少,可能学生认为学了也找不到适合的工作。这对于未来操作系统的研发和人才培养上,埋下隐患。
桌面操作系统机遇与挑战
随着物联网、大数据、云计算、AI等技术快速发展,张磊认为桌面操作系统的机遇与挑战并存:
物联网的发展将会带来操作系统多终端形态的融合。而人工智能技术将会改变人们的操作习惯:在传统图形界面操作方式上,人们使用鼠标和键盘来操作。如今可以通过语音进行操作,如采用声纹识别技术,让用户在登录时,直接说一段话让计算机识别是否是本人登录。另外,手势识别、人脸识别等技术也能帮助用户登录安全校验。
随着云计算的发展,云边端的方式将带来很大的灵活性,既可向上扩展为云计算中心节点,又可向下扩展为云计算的终端节点,这对操作系统来说,需有更多的模块化要求,这对操作系统提出了挑战。
五大建议
尽管面临上述种种难题,张磊仍对国产操作系统充满信心。因为他看到在国内良好的互联网发展环境,在应用开发和大数据、云计算、AI等技术发展上,中国拥有较好的技术优势。
如何将这些优势往下延伸,更好的发展国产操作系统?
张磊有一些建议:
一是建设好开源社区,一个操作系统里可能存在上千款软件,这些软件加起来有将近成亿行代码,这么庞大的代码量不可能由几家公司、或几十家公司开发的,所以在生态建设上,企业需要开源社区的力量,同时能吸引更多的人来参与和使用开源的软件,弥补人才培养和技术的空白。
二是政府需起引导作用,由于操作系统本身是一个大生态,如果单靠企业来做是不够的。所以需要政府的引导,来鼓励和推进大家建立标准规范,促进生态的发展。例如有一些产品可以先做出来后,放在小范围的市场点做试用,因为用户只有在使用的过程中,才能知道这个产品是否好用,加快产品和技术的成熟脚步,而后再继续扩大市场。
“这类似于‘滚雪球’的动作,刚开始时小雪球需有一个引导才能滚起来。”张磊打趣道。
三是尊重知识产权。如果大家不尊重知识产权,随便拿别人代码来用,还不贡献代码,这样将不利于社区的发展。
四是产业分工。各企业采取分工合作的方式,并通过标准和规范的约束,来给产品做良好的发展规划,促进产业的繁荣。
五是多技术发展方向。以前做操作系统和芯片时,大家可能只盯着核心技术,如操作系统内核、芯片制造、芯片设计等,忽略其他技术。这种方式是存在问题的,仅将单个技术解决,并不意味着能发展起整体生态。需考虑大的生态产业发展,便要将目光投向多个技术发展方向。
当前,统信软件的600多名工程师不断在操作系统领域里耕耘与创新:
软件研发上,深度操作系统开发了30多款软件,统信UOS 里增加十多款软件,统信软件拥有共四十多款软件。未来将和合作伙伴致力丰富更多软件应用,如研发搜狗拼音输入法的第一个 Linux 版本,完成网易云音乐的 Linux 版本,和科大讯飞在操作系统做语音助手等等。
如今的统信软件不仅拥有桌面操作系统,还在研发服务器操作系统,后续对多应用场景和灵活配置继续发力。
在软件管理上,将逐步做创新应用。如今开源社区在软件版本方式上,技术考虑较多,应用程序管理可能考虑较少,对于如何确保应用程序不会破坏其他的应用程序、应用程序的升级不会破坏操作系统等问题,统信软件正在做这方面的创新研发。
在新旧技术的融合上,实现平滑的新老技术接替和过渡。例如在 Linux 桌面操作系统上,有较老的图形窗口管理技术 X11,还有较新的技术方案Wayland。X11 较老,但兼容性较好;Wayland 较新,性能较好,但兼容性较差。所以统信软件在下一阶段里,系统实现不同新老技术支持,完成平滑的新老技术接替和过渡。
在桌面操作系统上,未来的两到三年,统信软件将会完成包含多端融合等创新功能。在同一个操作系统上,可支持笔记本电脑、台式机、平板、手机等多种终端设备。还会发力于上文提及的在桌面操作系统做语音上的创新研究。
在安全上,有些固件规范将近一千多页,让人难以理解。统信软件将持续关注新的规范,可能尝试在新的系统里对其进行改造,让系统的安全性和性能得到很大的提高。还有,统信软件正在设计实施系统与应用边界的划分,建立ABI兼容机制来提高系统的稳定性与兼容性。
最后,加强行业的培训体系。统信软件技术团队拥有10多年行业研发经验,无论在技术上还是产品上积累经验较多,他们正在将这些经验做成培训体系,以培养更多行业人才。
更多精彩推荐
☞Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相
☞超级账本Hyperledger Fabric中的Protobuf到底是什么?